package san.java.day08;

import san.java.inherit_07.Person;
import san.java.inherit_07.Student;

/**
 * equals 和 ==
 *  ==:
 *      1. 基本类型比较值,只要两个对象的值相等,即为true
 *      2. 引用类型比较引用是否指向同一个对象,只有指向同一个对象时, == 才返回 true
 *      3. 用"=="进行比较时,符号两边的数据类型必须兼容:
 *          i  有继承关系
 *          ii 可自动转换的基本数据类型
 *
 *  equals(): Object的方法
 *      1. 只是比较引用类型,其作用与"=="相同,比较是否指向同一个对象
 *      2. 在类File, String, Date, 以及包装类 Wrapper_03 Class 中已经重写了equals类,
 *          他们比较的是内容,而不是看是否引用同一个对象
 *      3. 对于其他引用类型, 可以重写equals方法,来自定义
 */

public class Equals_02 {

    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person();
        Student s1 = new Student();

        Equals_02 e1 = new Equals_02();

        System.out.println(p1 == p2);
//        System.out.println(p1 == e1);
        System.out.println(p1 == s1);

        // equals
        System.out.println(p1.equals(s1));
    }

}
